package com.itlong.cloud.app.dao;

import com.itlong.cloud.POJO.PO.AppUserInfoPO;
import com.itlong.cloud.POJO.PO.AppUserProjectPO;
import com.itlong.cloud.POJO.VO.app.AppCallElevatorRecordVO;
import com.itlong.cloud.POJO.VO.app.AppElevatorFloorSimpleVO;
import com.itlong.cloud.POJO.VO.app.AppRoomApplyLogVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      灵云快智接口。
 * <desc/>
 *
 * @createDate 2018-07-17.
 */
@Mapper
@Repository
public interface IAppUserLykzAccountDao {

    /**
     * <desc>
     * 保存用户的灵云快智所创建的账号信息
     * </desc>
     *
     * @param
     * @return
     * @author JuGuang.S
     * @createDate 2018-07-17.
     */
    Integer save(Map<String, Object> params);

    /**
     * <desc>
     * 获取项目编号
     * </desc>
     *
     * @param
     * @return
     * @author JuGuang.S
     * @createDate 2019-01-03.
     */
    List<String> getProjectidPushCommand();

    /**
     * <desc>
     *     更新
     * <desc/>
     * @param
     * @return  Integer 更新的数目
     * @author JuGuang.S
     * @createDate 2018-07-13
     */
    Integer updateAppUserInfo(@Param("userId") String userId,@Param("lykzId") String lykzId);

    /**
     * <desc>
     *      根据userId查询是否已创建灵云快智的账号
     * </desc>
     *
     * @param userId 用户id
     * @return
     * @author Juguang.S
     * @createDate 2018/08/24
     */
    Integer getUserInfoByUserId(@Param("userId") String userId);

    /**
     * <desc>
     *      更新SIP账号
     * <desc/>
     * @author Juguang.S
     * @createDate 2018-08-24
     */
    void updateUserSipAccount(@Param("newSipAccount") String newSipAccount, @Param("userId") String userId,@Param("sipPsd") String sipPsd);

    /**
     * <desc>
     *      查询所有的未禁用并且开启云对讲的项目编号
     * <desc/>
     * @author Juguang.S
     * @createDate 2018-08-24
     */
    List<String> getProjectid();

    /**
     * <desc>
     *      查询所有已注册灵云快智的userId
     * <desc/>
     * @author Juguang.S
     * @createDate 2018-09-11
     */
    List<String> getLykzUserId();

    /**
     * <desc>
     *      根据灵云userid查询cloud_intercom_account_info表中是否已有该用户灵云信息数据
     * <desc/>
     *
     * @return
     * @author Juguang.S
     * @createDate 2018-11-22
     */
    Integer getExistLykzInfo(@Param("lykzUserID") String lykzUserID);

    /**
     * <desc>
     *      根据参数查询用户小区关联表
     * <desc/>
     * @param       params  查询参数
     * @return      用户小区关联对象集
     * @author JuGuang.S
     * @createDate 2018/05/17
     */
    List<AppUserProjectPO> getUserProjectByParams(Map<String, Object> params);

    /**
     * <desc>
     *      更新用户小区关联表
     * </desc>
     *
     * @param userProjectPO      待更新的用户小区关联对象
     * @return      更新个数
     * @author JuGuang.S
     * @createDate 2018/05/17
     */
    Integer updateUserProjectInfo(AppUserProjectPO userProjectPO);

    /**
     * <desc>
     *     更新物业用户表中的有关灵云id，及sip账号密码
     * <desc/>
     * @param
     * @return  Integer 更新的数目
     * @author JuGuang.S
     * @createDate 2020-01-07
     */
    Integer updatePropertyUserInfo(Map<String, Object> params);

    /**
     * <desc>
     *     根据client_user_id查询cloud_intercom_account_id
     * <desc/>
     * @param clientUserId
     * @return
     * @author JuGuang.S
     * @createDate 2020-01-07
     */
    String getCloudIntercomAccountId(@Param("clientUserId") String clientUserId);

}
